/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.jsf;

import com.client.domain.Auteur;
import com.client.domain.Commande;
import com.client.domain.Livre;
import com.client.domain.TypeLivre;
import com.librairie.LivreManagerRemote;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateful;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

/**
 *
 * @author Gauthier
 */
@ManagedBean
@RequestScoped
public class LivreBean {

    @EJB
    private LivreManagerRemote livreManagerRemote;

    private String type, nom, resume, url_image;

    private String test = "";
    private String recherche = "";
    private Integer stock, nb_commande,seuil, id_auteur, id_livre;

    
    private float prix;
    private Livre Livre_Fiche;
    private Navigation nav;
    private TypeLivre type_livre;
    private List<String> categorie; 
    private List<Livre> livreList;
    private List<Commande> comList;
    private List<Livre> livreListALL;
    private Livre livreSelectionne;
    
    
    public Integer getId_livre() {
        return id_livre;
    }

    public void setId_livre(Integer id_livre) {
        this.id_livre = id_livre;
    }

    public Integer getId_auteur() {
        return id_auteur;
    }

    public void setId_auteur(Integer id_auteur) {
        this.id_auteur = id_auteur;
    }
    public Livre getLivre_Fiche() {
        return Livre_Fiche;
    }

    public void setLivre_Fiche(Livre Livre_Fiche) {
        this.Livre_Fiche = Livre_Fiche;
    }
    
    public String getTest() {
        return test;
    }

    public void setTest(String test) {
        this.test = test;
    }

    private String filtre = "";
    private String livreID;

    public Livre getLivreSelectionne() {
        return livreSelectionne;
    }

    public void setLivreSelectionne(Livre livreSelectionne) {
        this.livreSelectionne = livreSelectionne;
    }
    
    public TypeLivre[] getType_livre() {
        return TypeLivre.values();
    }
    public void setType_livre(TypeLivre type_livre) {
        this.type_livre = type_livre;
    }
    
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }

    public String getRecherche() {
        return recherche;
    }

    public void setRecherche(String recherche) {
        this.recherche = recherche;
    }

    public String getNom() {
        return nom;
    }
    public void setNom(String nom) {
        this.nom = nom;
    }

    public String getResume() {
        return resume;
    }
    public void setResume(String resume) {
        this.resume = resume;
    }

    public String getUrl_image() {
        return url_image;
    }
    public void setUrl_image(String url_image) {
        this.url_image = url_image;
    }

    public Integer getStock() {
        return stock;
    }
    
    public void setStock(Integer stock) {
        this.stock = stock;
    }

    public Integer getNb_commande() {
        return nb_commande;
    }
    public void setNb_commande(Integer nb_commande) {
        this.nb_commande = nb_commande;
    }

    public Integer getSeuil() {
        return seuil;
    }
    
    public void setSeuil(Integer seuil) {
        this.seuil = seuil;
    }

    public float getPrix() {
        return prix;
    }
    public void setPrix(float prix) {
        this.prix = prix;
    }

    public List<String> getCategorie() {
        return categorie;
    }

    public void setCategorie(List<String> categorie) {
        this.categorie = categorie;
    }

    public LivreBean() {
        livreSelectionne = new Livre();
    }
    
    public List<Livre> getListOfAllBook() {
        if (this.livreList == null) {
            this.livreList = livreManagerRemote.getLivreParTitre(this.recherche);
        }
        return livreList;
    }
    public void rech(){
            this.livreList.clear();
            this.livreListALL = livreManagerRemote.getLivreParTitre(this.recherche);   
            if(!this.categorie.isEmpty()){
                for(int i = 0 ; i<this.livreListALL.size() ; i++){
                    for(int j = 0 ; j<this.categorie.size(); j++){
                        if(this.livreListALL.get(i).getCategorie().equals(this.categorie.get(j))){
                            this.livreList.add(this.livreListALL.get(i));
                            this.test = "";
                        }
                    }
                }
            }
            if(livreList.isEmpty()){
                    this.test = "Aucun livre ne correspond a la rechercher. Pensez a cocher une catégoie.";
            }
            
    }
      public String createLivre ()
      {
          livreManagerRemote.addLivre(type, nom, stock, seuil, prix, resume, url_image, id_auteur);
          
        return "Catalogue.xhtml";
      }
     public String set_Fiche_Livre(Livre Livre_Fiche) 
     {
        this.Livre_Fiche = Livre_Fiche;
        
        return "fichelivre.xhtml";
     }

     public String go_to_modif_Livre(Livre Livre_Fiche)
     {
         this.Livre_Fiche = Livre_Fiche;

         setNom(Livre_Fiche.getNom());
         setPrix(Livre_Fiche.getPrix());
         setResume(Livre_Fiche.getResume());
         setSeuil(Livre_Fiche.getSeuil());
         setStock(Livre_Fiche.getStock());
         setUrl_image(Livre_Fiche.getUrl());
         setType(Livre_Fiche.getCategorie());
         setId_auteur(Livre_Fiche.getID_Auteurs());
         setId_livre(Livre_Fiche.getID_livre());
      
      // livreManagerRemote.updLivre(id_livre, type, nom, stock, seuil, prix, resume, nom, seuil);
         return "modif_livre.xhtml";
     }
     public String modif_livre()
     {
         livreManagerRemote.updLivre(id_livre, type, nom, stock, seuil, prix, resume, url_image, id_auteur);
        return "Catalogue.xhtml";
     }


}